home *** CD-ROM | disk | FTP | other *** search
- //----------------------------------------------
- // PrintThreePages.cs ⌐ 2001 by Charles Petzold
- //----------------------------------------------
- using System;
- using System.Drawing;
- using System.Drawing.Printing;
- using System.Windows.Forms;
-
- class PrintThreePages: Form
- {
- const int iNumberPages = 3;
- int iPageNumber;
-
- public static void Main()
- {
- Application.Run(new PrintThreePages());
- }
- public PrintThreePages()
- {
- Text = "Imprimir tres pßginas";
-
- Menu = new MainMenu();
- Menu.MenuItems.Add("&Archivo");
- Menu.MenuItems[0].MenuItems.Add("&Imprimir...",
- new EventHandler(MenuFilePrintOnClick));
- }
- void MenuFilePrintOnClick(object obj, EventArgs ea)
- {
- // Crear PrintDocument.
-
- PrintDocument prndoc = new PrintDocument();
-
- // Crear cuadro de dißlogo y establecer PrinterName property.
-
- PrinterSelectionDialog dlg = new PrinterSelectionDialog();
- dlg.PrinterName = prndoc.PrinterSettings.PrinterName;
-
- // Mostrar el cuadro de dißlogo y salir si el resultado no es OK.
-
- if (dlg.ShowDialog() != DialogResult.OK)
- return;
-
- // Establecer PrintDocument con la impresora seleccionada.
-
- prndoc.PrinterSettings.PrinterName = dlg.PrinterName;
-
- // Establecer la resoluci≤n de la impresora a borrador (draft).
-
- foreach (PrinterResolution prnres in
- prndoc.PrinterSettings.PrinterResolutions)
- {
- if (prnres.Kind == PrinterResolutionKind.Draft)
- prndoc.DefaultPageSettings.PrinterResolution = prnres;
- }
-
- // Establecer el resto de propiedades de PrintDocument.
-
- prndoc.DocumentName = Text;
- prndoc.PrintPage += new PrintPageEventHandler(OnPrintPage);
- prndoc.QueryPageSettings += new QueryPageSettingsEventHandler
- (OnQueryPageSettings);
- // Comenzar a imprimir.
-
- iPageNumber = 1;
- prndoc.Print();
- }
- void OnQueryPageSettings(object obj, QueryPageSettingsEventArgs qpsea)
- {
- if (qpsea.PageSettings.PrinterSettings.LandscapeAngle != 0)
- qpsea.PageSettings.Landscape ^= true;
- }
- void OnPrintPage(object obj, PrintPageEventArgs ppea)
- {
- Graphics grfx = ppea.Graphics;
- Font font = new Font("Times New Roman", 360);
- string str = iPageNumber.ToString();
- SizeF sizef = grfx.MeasureString(str, font);
-
- grfx.DrawString(str, font, Brushes.Black,
- (grfx.VisibleClipBounds.Width - sizef.Width) / 2,
- (grfx.VisibleClipBounds.Height - sizef.Height) / 2);
-
- ppea.HasMorePages = iPageNumber < iNumberPages;
- iPageNumber += 1;
- }
- }
-